package com.tom;

import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelPipeline;
import io.netty.channel.socket.SocketChannel;
import io.netty.handler.codec.http.HttpServerCodec;

/**
 * 初始化器,channel注册后，会窒息里面的相应的初始化方法
 *
 * @author zx
 * @date 2024-10-04 14:46
 */
public class HelloServerInitializer extends ChannelInitializer<SocketChannel> {
    @Override
    protected void initChannel(SocketChannel channel) throws Exception {
        //通过socketChanel 去获取对应的管道
        ChannelPipeline pipeline = channel.pipeline();

        // StringDecoder 解码的助手类

        // 加入一个netty 提供的handler
        // HttpServerCodec 是由netty自己提供的助手类,可以理解为拦截器
        // 当请求到服务端,我们需要做解码,响应到客户端做的编码
        pipeline.addLast("httpServerCodec",new HttpServerCodec());
        //增加自定义助手类，返回 hello netty
        pipeline.addLast("customerHandler",new CustomerHandler());

    }
}
